package com.cskaoyan.day5.deque._04_blockingqueue;

import java.util.concurrent.BlockingQueue;
import java.util.concurrent.TimeUnit;

class Producer implements Runnable {
    BlockingQueue<String> blockingQueue;

    public Producer(BlockingQueue<String> blockingQueue) {
        this.blockingQueue = blockingQueue;
    }

    @Override
    public void run() {

        // 循环了一百次，
        for (int i = 0; i < 100; i++) {
            try {
                // put 是一个阻塞方法。当BlockingQueue里面满了，会卡在这里。阻塞队列里面数据少了。
                blockingQueue.put(i + "");
                System.out.println("生产者生产了一份数据: " + i);
                // 可以通过它来调整生产的速度
                TimeUnit.MILLISECONDS.sleep(10);

            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }

    }
}
